<?php

namespace app\mpbase\service;

/**
 * Wechat配置类
 */
class Config
{

    public function __construct()
    {
        
    }

    /**
     * 加载公众号配置
     * @param string $appletId  应用ID
     * @param bool $loadMp      是否加载小程序关联公众号配置
     * @return array
     * @author 清凉Tea <973110519@qq.com>
     */
    public static function load($appletId = '', $loadMp = false)
    {
        if($appletId)
        {
            $applet_info = model('common/WechatApplet')
                ->where('appletid', $appletId)
                ->where('state', 'enable')->find();

            $options = [
                /**
                 * Debug 模式，bool 值：true/false
                 *
                 * 当值为 false 时，所有的日志都不会记录
                 */
                'debug'   => true,
                /**
                 * 账号基本信息，请从微信公众平台/开放平台获取
                 */
                'app_id' => $loadMp ? $applet_info['mp_appid'] : $applet_info['appid'],
                'secret' => $loadMp ? $applet_info['mp_appsecret'] : $applet_info['appsecret'],
                'token'   => $applet_info['token'], // Token
                'aes_key' => $applet_info['aeskey'], // EncodingAESKey，安全模式下请一定要填写！！！
                /**
                 * 日志配置
                 *
                 * level: 日志级别, 可选为：
                 *         debug/info/notice/warning/error/critical/alert/emergency
                 * permission：日志文件权限(可选)，默认为null（若为null值,monolog会取0644）
                 * file：日志文件位置(绝对路径!!!)，要求可写权限
                 */
                'log'     => [
                    'level'      => 'debug',
                    'permission' => 0777,
                    'file'       => ROOT_PATH . '/runtime/log/easywechat_'.date('Y-m-d').'.log',
                ],
                /**
                 * OAuth 配置
                 *
                 * scopes：公众平台（snsapi_userinfo / snsapi_base），开放平台：snsapi_login
                 * callback：OAuth授权完成后的回调页地址
                 */
                'oauth'   => [
                    'scopes'   => ['snsapi_userinfo'],
                    'callback' => 'https://usioo.com/addons/wechat/index/callback',
                ],
                /**
                 * 微信支付
                 */
                'payment' => [
                    'merchant_id' => $applet_info['mchid'],
                    'key'         => $applet_info['mchkey'],
                    'notify_url'  => $applet_info['notify_url'] ,
                    'cert_path'   => ROOT_PATH . 'public' . $applet_info['mch_api_cert'],
                    'key_path'    => ROOT_PATH . 'public' . $applet_info['mch_api_key'],

//                    'cert_path'   => 'D:\phpStudy\PHPTutorial\WWW\uctshop\extend\cert\apiclient_cert.pem', // XXX: 绝对路径！！！！
//                    'key_path'    => 'D:\phpStudy\PHPTutorial\WWW\uctshop\extend\cert\apiclient_key.pem', // XXX: 绝对路径！！！！
                // 'device_info'     => '013467007045764',
                // 'sub_app_id'      => '',
                // 'sub_merchant_id' => '',
                // ...
                ],
                /**
                 * Guzzle 全局设置
                 *
                 * 更多请参考： http://docs.guzzlephp.org/en/latest/request-options.html
                 */
                'guzzle'  => [
                    'timeout' => 10, // 超时时间（秒）
                    'verify' => false, // 关掉 SSL 认证（强烈不建议！！！）
                ],
            ];
            if($applet_info['typedata'] == 'miniapp'){
                $options['mini_program'] = [
                    'app_id'  => $applet_info['appid'], // AppID
                    'secret'  => $applet_info['appsecret'], // AppSecret
                    'token'   => $applet_info['token'], // Token
                    'aes_key' => $applet_info['aeskey'], // EncodingAESKey，安全模式下请一定要填写！！！
                ];
            }
            return $options;
        }

    }

}
